package middlewareWeb;

import java.util.Hashtable;
import java.util.Observable;
import java.util.Vector;

/**
 *Classe che implementa la coda all'interno dell'oggetto WorkerProxyRM
 * @author myusy
 */
public class BufferProxyRM extends Observable{
    private Vector<InfoRM> buffer ;
    /**
    *Metodo costruttore
     */
    public BufferProxyRM(){
        buffer = new Vector<InfoRM>();
    }
    /**
    *Metodo che effettua enqueue sulla coda
     */
    public synchronized int enqueue(InfoRM info,Hashtable clocks){
        this.setChanged();
        buffer.add(info);
        int index = buffer.indexOf(info);
        this.notifyObservers(new InfoObserver(index,clocks));
        return index;
    }
    /**
    *Metodo che restituisce l'intera coda
     * @return coda di InfoRM
     */
    public Vector<InfoRM> getBuffer()
    {
        return this.buffer;
    }
}
